Private Declare Function GetSystemDirectory Lib "kernel32.dll" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function GetTickCount Lib "kernel32.dll" () As Long
Private Declare Function CreateReadFileHandle Lib "kernel32.dll" Alias "CreateFileA" ( _
ByVal lpFileName As String, _
Optional ByVal dwDesiredAccess As Long = &H80000000, _
Optional ByVal dwShareMode As Long = &H1, _
Optional ByVal lpSecurityAttributes As Long = 0&, _
Optional ByVal dwCreationDisposition As Long = 3, _
Optional ByVal dwFlagsAndAttributes As Long = 0&, _
Optional ByVal hTemplateFile As Long = 0&) As Long
Private Declare Function CreateWriteFileHandle Lib "kernel32" Alias "CreateFileA" ( _
ByVal lpFileName As String, _
Optional ByVal dwDesiredAccess As Long = &H2, _
Optional ByVal dwShareMode As Long = &H2, _
Optional ByVal lpSecurityAttributes As Long = 0, _
Optional ByVal dwCreationDisposition As Long = 2, _
Optional ByVal dwFlagsAndAttributes As Long = 0, _
Optional ByVal hTemplateFile As Long = 0) As Long
Private Declare Function APIWriteFile Lib "kernel32" Alias "WriteFile" ( _
ByVal hFile As Long, _
ByVal lStringPointer As Long, _
ByVal lStringLength As Long, _
ByRef ReturnToWriteNumberOfBytes As Long, _
Optional ByVal DO_NOT_USE As Long = 0) As Long
Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, _
ByRef lpBuffer As Any, _
ByVal nNumberOfBytesToRead As Long, _
ByRef lpNumberOfBytesRead As Long, _
ByVal lpOverlapped As Any) As Long
Private Declare Function GetFileSize Lib "kernel32.dll" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
Private Declare Function lstrcmpi Lib "kernel32.dll" Alias "lstrcmpiA" (ByVal lpString1 As Long, ByVal lpString2 As String) As Long
Private Declare Function lstrlen Lib "kernel32.dll" Alias "lstrlenA" (ByVal lpString As Long) As Long
Private Declare Function mysql_init Lib "libmysql.dll" (ByVal hMysql As Long) As Long
Private Declare Function mysql_real_connect Lib "libmysql.dll" (ByVal hMysql As Long, ByVal Host As Long, ByVal User As Long, ByVal Passwd As Long, ByVal dB As Long, ByVal Port As Long, ByVal Unix_Socket As Long, ByVal clientflag As Long) As Long
Private Declare Function mysql_close Lib "libmysql.dll" (ByVal hMysql As Long) As Long
Private Declare Function mysql_errno Lib "libmysql.dll" (ByVal hMysql As Long) As Long
Private Declare Function mysql_error Lib "libmysql.dll" (ByVal hMysql As Long) As Long
Private Declare Function mysql_select_db Lib "libmysql.dll" (ByVal hMysql As Long, ByVal dB As Long) As Long
Private Declare Function mysql_options Lib "libmysql.dll" (ByVal hMysql As Long, ByVal PropID As Long, ByVal arg As Long) As Long
Private Declare Function mysql_real_query Lib "libmysql.dll" (ByVal hMysql As Long, ByVal q As Long, ByVal Length As Long) As Long
Private Declare Function mysql_send_query Lib "libmysql.dll" (ByVal hMysql As Long, ByVal q As Long, ByVal Length As Long) As Long
Private Declare Function mysql_escape_string Lib "libmysql.dll" (ByVal to_ As String, ByVal from_ As String, ByVal Length As Long) As Long
Private Declare Function mysql_store_result Lib "libmysql.dll" (ByVal hMysql As Long) As Long
Private Declare Function mysql_free_result Lib "libmysql.dll" (ByVal lResultPointer As Long) As Long
Private Declare Function mysql_field_count Lib "libmysql.dll" (ByVal hMysql As Long) As Long
Private Declare Function mysql_fetch_field Lib "libmysql.dll" (ByVal lResultPointer As Long) As Long 'Return the field struct pointer
Private Declare Function mysql_num_rows Lib "libmysql.dll" (ByVal lResultPointer As Long) As Long 'Return the 8 bit lenght pointer, myulonglong
Private Declare Function mysql_fetch_row Lib "libmysql.dll" (ByVal lResultPointer As Long) As Long 'Return the row struct pointer
Private Declare Function mysql_get_server_info Lib "libmysql.dll" (ByVal hMysql As Long) As Long
Private Declare Function mysql_stat Lib "libmysql.dll" (ByVal hMysql As Long) As Long
Private Declare Function mysql_list_dbs Lib "libmysql.dll" (ByVal hMysql As Long, ByVal wild As Long) As Long 'Return the True or False
Private Declare Function mysql_list_tables Lib "libmysql.dll" (ByVal hMysql As Long, ByVal wild As Long) As Long 'Return the True or False
Private Declare Function mysql_list_fields Lib "libmysql.dll" (ByVal hMysql As Long, ByVal table As Long, ByVal wild As Long) As Long 'Return the True or False
Private Declare Function mysql_fetch_lengths Lib "libmysql.dll" (ByVal lResultPointer As Long) As Long 'returns * unsigned long
Private Declare Function GetSystemDirectoryA Lib "kernel32.dll" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function GetShortPathNameA Lib "kernel32.dll" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32.dll" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
Public Event Connected(ByVal lAPIHandle As Long, _
ByVal sHost As String, _
ByVal sUser As String, _
ByVal sPass As String, _
ByVal sDatabase As String, _
ByVal lPort As String, _
ByVal sUnixSocket As String)
Public Event Disconnected(ByVal lAPIHandle As Long, _
ByVal sHost As String)
Public Event BatchQueryProgress(ByVal lTotal As Long, _
ByVal lCurrent As Long, _
ByVal eProgressType As BATHPROGRESSTYPE)
Public Event OnError(ByVal ErrCode As Long, ByVal ErrDescription As String)
Private lRet As Long
Private bRet As Boolean
Private APIHandle As Long
Private lResult As Long
Private IsConnected As Boolean
Private OpenIsReader As Boolean
Private i As Long
Private j As Long
Private mUsername As String
Private mPassword As String
Private mServerAddress As String
Private mServerPort As Long
Private mDatabaseName As String
Private mUnixSocket As String
Private mConnectionTimeout As Long
Private mCharset As String
Private mGiveError As Boolean
Public Property Get State() As MYSTATE
If (IsConnected) Then
State = MY_CONNECTED
Else
State = MY_NOT_CONNECTED
End If
End Property
Public Property Get ObjectPointer() As Long
ObjectPointer = ObjPtr(Me)
End Property
Public Property Get GiveError() As Boolean
GiveError = mGiveError
End Property
Public Property Let GiveError(ByVal Value As Boolean)
mGiveError = Value
End Property
Public Property Get ConnectionHandle() As Long
ConnectionHandle = APIHandle
End Property
Public Property Let ConnectionHandle(ByVal Value As Long)
APIHandle = Value
IsConnected = True
End Property
Public Property Get ConnectionTimeout() As Long
ConnectionTimeout = mConnectionTimeout
End Property
Public Property Let ConnectionTimeout(ByVal Value As Long)